package com.wande.dataplatform.domain.dto;

import lombok.Data;

import java.io.Serial;
import java.io.Serializable;
import java.util.List;
import java.util.Map;

/**
 * 查询结果DTO
 *
 * @author wande
 */
@Data
public class QueryResultDTO implements Serializable {

    @Serial
    private static final long serialVersionUID = 1L;

    /**
     * 列信息
     */
    private List<ColumnInfo> columns;

    /**
     * 数据行
     */
    private List<Map<String, Object>> rows;

    /**
     * 总行数
     */
    private Long total;

    /**
     * 执行时间(毫秒)
     */
    private Long executionTime;

    /**
     * 查询历史ID
     */
    private Long historyId;

    /**
     * 列信息
     */
    @Data
    public static class ColumnInfo implements Serializable {
        @Serial
        private static final long serialVersionUID = 1L;

        /**
         * 列名
         */
        private String name;

        /**
         * 列类型
         */
        private String type;

        /**
         * 列注释
         */
        private String comment;
    }
}
